package com.jevons.muffin.adapter;

import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;

import java.util.List;

/**
 * Adapter数据封装类
 *
 * @date 2016年4月20日
 */
public class AdapterAction<T> {

    protected Context context;
    private List<T> list;

    /**
     * 默认构造函数
     *
     * @param context context
     * @param list    适配器封装的数据
     */
    public AdapterAction(Context context, List<T> list) {
        this.list = list;
        this.context = context;
    }

    /**
     * @return context
     */
    public Context getContext() {
        return this.context;
    }

    /**
     * 添加adapter数据
     *
     * @param list
     */
    public void addAll(List<T> list) {
        this.list.addAll(list);
    }

    /**
     * 清除数据
     */
    public void clear() {
        this.list.clear();
    }

    /**
     * @return list数据
     */
    public List<T> getList() {
        return this.list;
    }

    /**
     * 设置list数据
     *
     * @param list
     */
    public void setList(List<T> list) {
        this.list = list;
    }

    /**
     * 获取count
     *
     * @return list的数量
     */
    public int getCount() {
        if (this.list == null) {
            return 0;
        }
        return this.list.size();
    }

    /**
     * 获取item数据
     *
     * @param position
     * @return item数据
     */
    public T getItem(int position) {
        if (position < this.list.size()) {
            return (T) this.list.get(position);
        }
        return null;
    }

    /**
     * 获取itemId
     *
     * @param position
     * @return itemId
     */
    public long getItemId(int position) {
        return position;
    }

    /**
     * 加载布局
     *
     * @param resource  布局文件
     * @param viewGroup 父布局（没有的话直接传null）
     * @return 布局函数
     */
    public View inflate(int resource, ViewGroup viewGroup) {
        return ((LayoutInflater) this.context.getSystemService(Context.LAYOUT_INFLATER_SERVICE)).inflate(resource,
                viewGroup, false);
    }

}
